<?php

	Class Order{
		
		private $Conexion;
		public  $error;
		private $Fecha;
		private $NumCustomer;
		private $OrderNo;
		private $Almacen;
		private $NLinea;
		
		public function __construct(){
			$this->error="";
			$this->NLinea=10000;
			$this->Conexion = new Conexion(); //Creacion objeto conexion
			$this->getDatosDistribuidor();
		}
		
		public function getDatosDistribuidor(){
			$DatosDistribuidor = $this->Conexion->getDatosDistribuidor();
			$this->NumCustomer=$DatosDistribuidor['Customer WEB No'];
			$this->OrderNo=$DatosDistribuidor['Order No'];
			$this->Almacen=$DatosDistribuidor['Almacen Relacionado'];
		}
		
		public function getFecha(){
			return $this->Fecha = date("d")." / ".date("m")." / ".date("o");
		}
		
		public function datoDistribuidor(){
			$datos=$this->Conexion->getCustomer($this->NumCustomer);
			return $datos;
		}
		
		public function getHistory(){
			return $this->Conexion->history();
		}
		
		public function getMerchandise(){
			return $this->Conexion->getMerchandise();
		}
		
		public function getMachine(){
			return $this->Conexion->getMachine();
		}
		
		public function getItemPro(){
			return $this->Conexion->getItemPro();
		}
		
		public function getNombreItem($itemNo){
			return $this->Conexion->getNombreItem($itemNo);
		}
		
		public function getUndItem($itemNo){
			return $this->Conexion->getUndItem($itemNo);
		}
		
 		public function getFechaOrder($itemNo){
 			$fecha=$this->Conexion->getFechaItem($itemNo);
 			return $fecha;
 		}
 		
 		public function getDatosLine($no){
 			return $this->Conexion->datosLine($no);
 		}
		
		public function insertOrder($post){
			$exito=false;
			$datosD=$this->Conexion->getCustomer($this->NumCustomer);
		
			$nomFiscal=$datosD['Name'];
			$nomCom=$datosD['Search Name'];
			$pobl=$datosD['City'];
			$cif=$datosD['VAT Registration No_'];
			$direc=$datosD['Address'];
			$tlf=$datosD['Phone No_'];
			$cp=$datosD['Post Code'];
			$commet=$post['comment'];
			$consumo='0';
			$actual='';
			$tipo='1';
			$contribucion='';
			$observacion='';
			$tipoCon='';
			$tipoRec='';
			$tipoInsert='3';
			$euros='0';
			$contacto='';
			$enlace="";
			
			if($this->Conexion->insertCliente($nomFiscal,$pobl,$cif,$direc,$consumo,
				$nomCom,$cp,$actual,$tlf,$tipo,
				$contribucion,$observacion,$tipoCon,$tipoRec,
				$commet,$this->OrderNo,$this->NumCustomer,$tipoInsert,$euros,$contacto,$enlace)){
		
				if($this->insertMaquinaAport($post,$tipoInsert)){
					$this->Conexion->updateOrder(); //<--Incrementa el numero de order
					$Emails=new Info();
					$Emails->orderProce($datosD,$post);
					$this->error="Order successful!";
					$exito=true;
				}
			}
			else{
				$this->error="Order is not created!";
			}
			
			return $exito;
		}
		
		public function insertMaquinaAport($post,$tipoInsert){
			$exito=false;
			$totalMaq=count($post['item']);
			
			for ($i=0; $i<$totalMaq; $i++) {
				$EstadoMaq='';
				$NProducto=$post['tipo_item'][$i];
				$Descripcion=$this->getNombreItem($post['tipo_item'][$i]);
				$Serie='';
				$GrupoMaq='';
				$Cantidad=$post['quanti'][$i];
				$Unidad=$this->getUndItem($post['tipo_item'][$i]);
				
				if($NProducto!=""){
					//Si datos validos
					if($this->Conexion->insertMaq($this->OrderNo,$this->Almacen,$EstadoMaq,$Serie,
												  $Descripcion,$NProducto,$this->NLinea,$tipoInsert,$GrupoMaq,$Cantidad,$Unidad)){
						$this->NLinea=10000+$this->NLinea;
						$this->error="Maquina insertada con exito";
						$exito=true;
					}
					else{
						$this->error="No se ha podido insertar la maquina";
					}
				}
			}
			return $exito;
		}
		
	}
	
?>